home *** CD-ROM | disk | FTP | other *** search
-
- VSUITE.DOC: Documentation for the Virus Script Suite version 2.04
- File last updated Tuesday March 21, 1995.
-
- ╔═════════════════════════════════════════════════════╗
- ║Important: Read the LICENSE section of this document ║
- ║ for important info about updates and bug fixes! ║
- ╚═════════════════════════════════════════════════════╝
-
- CONTENTS
-
- I. INTRODUCTION
- II. REQUIREMENTS
- III. FILE DESCRIPTIONS
- IV. INSTALLATION
- V. MORE INSTALLATION
- VI. LOGIC OF OPERATION
- VII. NOVELL RIGHTS REQUIREMENTS
- VIII. LICENSE
- IX. AFTERNOTES
-
-
- I. INTRODUCTION
-
- This package was written as an alternative to buying expensive NLM
- software for our Novell network here, in order to provide a safe and
- reliable virus scanner for our lab and network users. I wanted to
- provide a fast and easy interface which required little if any knowledge
- of computers to use, to enable virus scanning of both floppy and hard
- drives. I also wanted centralized reporting if anything was found, or if
- problems occured during scans. I also wanted to make the system easily
- editable, configurable, and repairable, which I believe I have managed
- to do.
-
- These are, essentially, just 4DOS scripts... but a LOT of lines of
- script at that, and they do some pretty novel things, such as building
- other scripts and configuring software, auto notifying, and more.
-
- I thought about compiling the scripts, or even rewriting the scripts
- into Pascal or C, but to be honest, I like to be able to change them so
- frequently, and to make bugfixes when necessary, and I thought you might
- want to be able to customize them, too. If you DO want to compile them,
- see the 4DOS documentation for the BATCOMP command.
-
- A caveat: I have tried to avoid the mindset that says when one is writing
- documentation, one should approach it with the levity of an accused
- prisoner of the Spanish Inquisition. Forgive me this, if nothing else.
-
- The documentation seems, to me, to be kind of thick... but I am pretty
- specific about a lot of things in this document. Take what you need and
- leave the rest, but I would recommend reading through it in its entirety
- before you attempt to install, so you know what's going on. (I know, I
- know... 500 lines of documentation? for some SCRIPTS?!?!)
-
- I did a complete rewrite of the Virus Scanning for version 2.0. If you
- were familiar with it before, you know about the fact that you needed
- not ONLY to be using Novell 3.xx, 4DOS, and F-Prot, but you also needed
- to be using Pegasus Mail for notification, plus you needed about five
- little UNIX-like utils such as GREP, SED, HEAD, and more to be able to
- use this package. The requirements have slimmed; see the REQUIREMENTS
- section for more info. Speaking of which....
-
- II. REQUIREMENTS
-
- I have changed the format of this system, along with providing a more
- user-friendly interface, so that the requirements to run the scripts
- are now:
-
- Must be using Novell 2.xx/3.xx (I have not made any 3.xx calls, so
- it should actually work with any Novell version that includes the
- command WHOAMI; I unfamiliar with version 4.xx, but I would also
- assume it works fine under that release of Netware)
-
- Must have F-Prot installed on your network drive, publically
- accessible (but not necessarily on the public path)
-
- Must have 4DOS, in a publically accessible locatiion which is on
- the network path. (possibly where you install your vsuite
- files).
-
- Hardware requirements are about 100K of free space on the server.
-
- That's it! No mailer is needed, nor any utilities save 4DOS and F-Prot.
-
-
- III. FILE DESCRIPTIONS
-
- Here's the list of what this package comes with:
-
- HISTORY.TXT -- A short version of what has changed through
- all release versions.
-
- INSTALL.BAT -- DOS script to check for 4DOS 5.0 and launch
- INSTALL.BTM in a 4DOS shell if found.
-
- INSTALL.BTM -- 4DOS script to take user information and build the
- scanner scripts.
-
- MAKEFILE.1-6 -- Files used by the installer during the build process.
-
- VSUITE.DOC -- This file. (aside from the obvious...)
-
-
- Here's what you need to get from a SimTel mirror (such as
- oak.oakland.edu, ftp.cdrom.com, or wuarchive.wustl.edu) if you don't
- already have 'em:
-
- F-PROT -- Virus scanner. It can be found in /msdos/virus,
- with a filename of fp-xxx.zip, where xxx is the
- current version number. At this writing,
- 2.16d was the current version, but as Frisk
- is so wonderful about updates, there are
- probably newer versions out there by the time
- you read this.
-
- 4DOS -- The wonderful shareware shell. Pick it up in the
- SimTel directory msdos/4dos, under the filenames
- 4DOSxxA.ZIP and 4DOSxxB.ZIP, where xx is the
- current verison number (ergo, 4DOS55A.ZIP and
- 4DOS55B.ZIP at the time of this documentation).
-
- As these are shareware utilities of an excellent quality, and
- have a more than reasonable registration price, I will suggest
- registering them both. If you use them, and you WILL once you
- try them, you should help support them.
-
-
- IV. INSTALLATION:
-
- You can install the scanner to a local drive to practice, or test it
- out. Just give the Installer appropriate local directories instead of
- network directories, and it will work. This version of the scanner was
- written on a standalone machine, and bugfixed on a Novell 3.12 network.
-
- If you have already installed a previous version of the scripts, never
- fear. The system will clean out the old files before installing the new.
- Just give the program the same directory where the previous version is
- installed.
-
- Unpack this archive. Wait.... you've already done that.
-
- Make a directory, in a publically writable area, to store virus reports.
- Note: virus reports will ONLY show up if viruses are reported, not with
- every scan.
-
- Make sure you're in the directory you unpacked the archive -to-, and
- type INSTALL. Most of the installation is pretty simple, but here, is a
- step by step description of what you need tell the installer when it
- asks for information:
-
- First of all you need to read and agree to the disclaimer. I cannot be
- held liable for this script's performance, in part because the
- installation procedure assumes that you know what you are doing in the
- first place, and secondly, because I don't know what your network looks
- like. If I did I'd have to be doing your job. :-)
-
- Please understand that not only have I spent a few hundred hours or so
- working on the various versions of these scripts, and not only have I
- presented this information and these scripts to my own colleagues, but
- that I use them myself, with some minor modifications. We will talk
- about those in the MORE INSTALLATION section below. I am fairly certain
- that they should work for anyone running Novell, but if bugs do occur,
- please let me know. I'd like to have a stable utility out there.
-
- After agreeing to the disclaimer, you'll be asked to give your scanner a
- title. This can be anything you wish, and you'll be given a rough
- example of what you enter as it would appear in the title of the
- scanner, so that you can verify that what you see is what you want. The
- title needs to 68 characters or less wide.
-
- The next several screens will request information about how where you
- want to put files and where the scanner can find files. When
- appropriate, if you enter a path which does not exist, the script
- will ask you if you wish to create that directory. In any case, trailing
- slashes are removed from all paths, and you will be asked to verify each
- entry for correctness. If you say "n" to any of these questions, you
- will be prompted to re-enter the information.
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ IMPORTANT TECH NOTE: I have found as of recent that 4DOS data piping ║
- ║ will NOT work properly with Novell directory namespacing. ║
- ║ Whatever you do, DON'T use Novell-style (SERVER/VOL:DIR\SUBDIR) ║
- ║ pathnames for your network drives when queried by the installer. Use ║
- ║ the old F:\PUBLIC names. ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- First, you will be asked to enter a directory which the scripts can
- store F-Prot on users' local drives. This was changed from previous
- versions, where the users would load F-Prot from a network drive each
- and every scan they did. I got rid of that, because the load increase
- from just our lab machines was staggering. For more information on what
- the scanner references, check the LOGIC OF OPERATION section below,
- which gives a complete rundown. If this directory does not exist on a
- particular machine, when the scanner is run on that machine it will
- create the directory after checking to make sure enough space exists for
- F-Prot.
-
- The next path you will be asked to enter is the path to a network
- directory where you'd like to store the latest version of F-Prot. This
- is called the Archive Directory, and when you get a new version of
- F-Prot all you need to do is unpack the COMPLETE archive for it into
- this directory. When a user scans their workstation, a version
- comparison is made between the version of F-Prot in the user's local
- F-Prot directory and the version in this Archive Directory, and if the
- version has changed since they last scanned, they will be notified to
- wait while their local version is updated. The newer version will then
- be copied to their drive, relieving you of the burden of updating
- everyone's verison of F-Prot.
-
- Up next, you're asked for a location to build the Virus Script Suite's
- scripts. This MUST be a public directory on a network drive, and it MUST
- be on the public path, otherwise your users won't be able to scan their
- machines by just typing VSCAN. I've always used \PUBLIC\BATCH, which
- around here we added to the system login file drive mappings; you may
- prefer \PUBLIC, but I've found having half a gig of small files in one
- directory slows access time. Don't forget: -Don't- use Novell-style
- names!
-
- Then, you will be prompted to enter the name of a directory which can be
- found on each user's system, to create a temporary report file which
- will be deleted automatically, unless viruses are found. I use C:\ for
- our temporary directory here, since this file is deleted. You may prefer
- to use another directory, but make certain it exists on all of your
- workstations. If this directory does not exist on the users' machine, it
- will be created for them.
-
- Finally, you will be asked for the path to a report file directory.
- This is a directory on which the scanner file SUMMARY.TXT is stored,
- into which are added the "virus found" alerts, and which is checked by
- a script which you will later add to your Novell LOGIN file. We'll
- discuss the need for this file and directory in the LOGIC OF OPERATION
- section, but for now, just enter the name of a network directory which
- is publically accessible, but not necessarily on the public path. Here,
- we use <server>\SYS:\PUBLIC\LOGINS\VREPORTS.
-
- You will then be asked to verify that all of the information you have
- entered is correct. If you wish to change anything, press "n", and you
- will be able to re-enter all of the directory paths and the scanner
- title again.
-
- After this, the Installer will build its necessary files in the directory
- you told the Installer to use for scripts. Provided there are no
- problems compiling the scripts together (which I have done on different
- machines probably forty or so times during internal testing), you will
- be done. Try running the scanner from a test account, if you have one,
- or a lab machine. The program name the users will enter is VSCAN.
-
- Note that the VCHECK program automatically creates a log file if it does
- not find one. More on this script in a bit.
-
- V. MORE INSTALLATION:
-
- There are a few things which you need to take care of by hand, if you
- wish to. Please note that ALL OF THESE CHANGES ARE OPTIONAL, and the
- scripts will work fine if you don't feel comfortable or up to making
- some minor changes by hand. The only difference is that instead of being
- notified of reported viruses each time you login, you will need to run
- VCHECK, the "check for virus reports" script, by hand. Do that by
- typing VCHECK if you run 4DOS as your shell. If you do not use 4DOS,
- type the command "4DOS /C VCHECK.BTM", and the script will run for you
- and let you know if any viruses were found.
-
- I do it this way because frankly, I don't think it's right for me to be
- making changes in your LOGIN file for you. That's a dangerous thing to
- do, so I didn't.
-
- Here are the changes for auto-notification:
-
- Edit the Novell LOGIN file for the person who the virus notifications
- are to be sent to. Near the end of their login script, add this line:
-
- #4DOS /C <path>\VCHECK.BTM
-
- substituting the path where you told the installer your public util
- directory is. This will check to see if viruses have been reported every
- time the aforementioned "responsible user" logs in.
-
- Another thing you may wish to change is due to a DOS "bug", IMHO. The
- folks who programmed DOS decided that if someone tries to reference a
- drive that does not exist, then the user should be prompted to insert a
- disk into that drive and press a key. Most disastrous if you're in the
- midst of a batch file, really. What happens on a single drive machine if
- a user selects "B:" as the drive to scan, the system appears to have
- locked down. It hasn't. DOS has just taken over the system, and is
- sitting in the background waiting for you to hit ENTER.
-
- The workaround I found for this on our network is to 1) label the drives
- in the lab, so users have a visual clue that the only drive in a
- single-drive machine is A:, and 2) add some checking code. How it works
- is this: Each of our lab machines set an environment variable when they
- boot up, with the line "SET NAME=PCx", where x is a number. Then, I
- customized our script, by adding lines directly following the label
- ":scanner" (line 81) like this one:
-
- IF %NAME=PC6 .and. %DRIVE=B: set drive=A:
-
- If you are not familiar with 4DOS, the ".and." boolean only works under
- 4DOS, but it's reason enough for registering 4DOS.
-
- Be aware that the more entries you place in here, the slower
- (though not much slower) your script will run, so be judicious. Assume
- that lab users are the only ones out there who don't know the difference
- between drive letters, and handle the people who call you saying "I told
- it to scan the B drive, and it's locked my machine down!" by educating
- them. They really need to know their machine's drive names.
-
-
- VI. LOGIC OF OPERATION:
-
- The scripts use color, which they need ANSI.SYS for, but if ANSI is not
- there, the screens will work, but they might not be as pretty as they
- are under ANSI.SYS (i.e. some system text will not be hidden as it is
- with ANSI loaded). Ansi is a pretty much de-facto required DOS standard,
- so I don't expect this to be a problem.
-
- VSCAN:
- It's about this distance into documentation I get reaaaaally tired of
- being so precise, but I will be as specific as possible here, since this
- is a description of what the scanner is actually doing step by step.
-
- If your users are not using 4DOS as a shell, then typing VSCAN calls a
- batch file, which runs the 4DOS script VSCAN.BTM under a 4DOS shell
- which closes after the scan is complete.
-
- The script checks to see if there is less than 800 bytes of environment
- space available for variables. If there is, the script exits with a
- message to this effect. Since there are a lot of variables in this
- script, and since network paths tend to eat up a good deal of DOS's
- environment space, you should likely allow for 1536 bytes of environment
- space for networked machines using 4DOS as their native shell. This will
- ONLY be a problem for users who use 4DOS as a shell, and have a small
- environment space set in their CONFIG.SYS file. Try editing the line in
- CONFIG.SYS which says:
-
- SHELL=C:\4DOS\4DOS.COM /P /E:XXXX
-
- by upping the value in XXXX to 1536 or 2048, should you run into this
- problem.
-
- Secondly, the script checks to make sure it's not being run from under
- Windows in 386 mode. If it is, it tells the user to exit Windows, and
- then scan their system... reason being that I don't trust the Windows
- 32 bit disk access completely when de-virusing system areas on the hard
- drive.... I've heard horror stories.
-
- Next, the script looks into the keyboard buffer, for the character ".",
- and if it finds it, the scanner exits cleanly. I did this because in our
- lab, sometimes I am forced to go through ten virus scans while
- configuring software in our menu system, and if I already know a machine
- is clean, having to rescan just slows me down. Now, when I select a
- choice from our menu which will force me to go through a virus scan, I
- IMMEDIATELY hit the period key after selecting that menu item, and I can
- skip the scan. Note: this is a backdoor which you should NEVER let
- general users know. Keep it amongst your computer staff! You can, of
- course, change this character if you wish to, or even remove it.
-
- The scanner then does some environment variable set up. Then the scanner
- checks in the user's local F-Prot directory (which you specified during
- installation), and also in the network directory where you have stored
- the latest version of F-Prot. It looks for the file NEW.XXX in both of
- these directories, which MUST be there in the archive directory... the
- XXX will be a number, which is the version number of that copy of
- F-Prot. If the numbers between the directories differ, then the user is
- notified that their version is outdated, and that a newer version is
- being copied to their local directory, which the script then does.
-
- The script also checks for the existence of the temp directory on the
- user's hard drive, and if it does not exist, creates it.
-
- Memory is then scanned for viruses, and also the file C:\COMMAND.COM,
- which really should exist on any networked machine with a hard drive. If
- you're using machines which exclusively have bootROMs, why worry about
- scanning that station? It's ROM can't be infected....
-
- If a virus is found in memory, execution is handled over to the
- reporting facilities, which I will discuss later.
-
- A check is then made to see if the user entered a command line option,
- which would be a drive letter A: through D:. This means that if you
- type VSCAN C:, or put something similar in a user's LOGIN file, the C:
- drive will be scanned automatically. If there was a drive letter
- specified, the scanner will simply scan the specified drive and then
- exit to DOS, provided no uncleanable viruses are found. This was added
- at the request of some virus conscious individuals on our network, but
- we don't have it in the systemwide login script, because some of us who
- may multitasking OS's like OS/2, and who open maybe fifty shells a day,
- lose a good chunk of time to redundant rescans.
-
- After the memory scan is completed, the user is presented with a menu to
- select drives A: through C:, a HELP option, or QUIT. Choosing HELP gives
- a scrolling box which displays the file VSSHELP.DAT, mentioned
- previously. Choosing QUIT clears out all of the variables used by the
- scanner, clears the screen, and exits.
-
- Choosing a drive letter begins an F-Prot scan on the specified drive,
- using the options /nomem (memory was scanned during startup), /auto
- /disinf (clean up viruses if you can), /silent (no screen output), /old
- (no messages or pauses if the F-Prot version is getting old), /command
- (command line mode only), and /report=<file>, to produce a report file.
- The report file is named "VREPORT.TXT" and is placed in whatever
- directory you defined as the User's temp directory during the
- installation process.
-
- If a suspicious file is found (not currently a return code for the type
- of scan we're doing, but put in for future expansion), the user will be
- informed of this, and their VREPORT.TXT file will be concatenated onto
- the log file SUMMARY.TXT, which is stored in the Report Directory on
- your network, which you specified during installation.
-
- If an infected file/disk is found which can be cleaned, it will be
- cleaned automatically, and the user notified that a virus was found and
- removed. Again, their VREPORT.TXT file will be concatenated onto the log
- file SUMMARY.TXT, which is stored in the Report Directory on your
- network, which you specified during installation.
-
- If an uncleanable virus is found the system will be locked down, the
- user's screen will turn red, a heinous alarm sound will blare out
- through their speaker to let them know something is wrong, and they will
- be presented with a screenfull of information regarding exactly what has
- gone wrong, and that they should contact support personnel for further
- instructions. The reason I decided to lock the machine down instead of
- just pleasantly exiting with a "Hey, you know you've got a virus,
- right?" message is that most users would tend to put that kind of
- message on the backburner for a week or two, and then let you know. This
- way, they want to get their system cleaned up ASAP. In any case, a copy
- of their VREPORT.TXT is added onto your SUMMARY.TXT file as before, for
- your perusal.
-
- The errors possible are the same as the F-PROT errors. Read your F-Prot
- documentation if you're not sure of how to handle the problem. Please
- note that one possible problem is a virus scan failing because of
- insufficient memory, but if your machines have 512k, this should never
- be a problem. If you do have machines with 512k running on Novell in
- this day and age, you're braver than I thought, and your users must have
- one heck of a time using the 4k or so of conventional memory left over
- after all of the network junk loads.
-
-
- VCHECK.BTM:
- This one is a whole lot simpler. It checks the length of the SUMMARY.TXT
- file, and if the file is over 61 bytes long (the length of the header in
- the file), it knows something has been added to it. If it does not find
- the SUMMARY.TXT file, i.e. if you've deleted it, it creates a new one
- from scratch.
-
- If viruses HAVE been reported, you will be presented with a dialogue box
- allowing you to scroll through the SUMMARY.TXT file to see the actual
- F-PROT report files generated by the scans. Each one will also be marked
- with a WHOAMI, to let you know who ran the scan and where they were.
-
- The SUMMARY.TXT file will then be added to MM-DD-YY.txt, named with the
- current date. Ergo, if I read the SUMMARY.TXT file on December 1st,
- 1995, SUMMARY.TXT would then be moved into 12-01-95.txt, and the
- SUMMARY.TXT file will be reset with a current date and time line. This
- allows you to look back through your virus reports over time. Delete the
- files as frequently as you wish; I do about once every three months or
- so.
-
- If you have more than one virus report notification in one day, they
- will all be concatenated onto that date's file, so you won't lose any
- reports you have already seen.
-
- Please note that this is NOT a DOS batch file, it's a 4DOS script, and
- there is no batch file to run the VCHECK script by just typing VCHECK.
- What this means is you need to add a line to run it automatically at
- each login in your LOGIN file (as described in the MORE INSTALLATION
- section), or you need to be running a 4DOS shell to manually invoke the
- script. I prefer to use 4DOS as my native shell... you likely will too,
- once you try it out, and since it's DOS compatible, this should not
- really be a problem. I refrained from writing the one line .bat file
- which would allow you to run VCHECK.BTM in a 4DOS shell, so that only
- those folks who know what they are doing can run the notification
- script.
-
- This is everything that goes on in the scripts. Sounds simple, I know,
- but if you take a look at the scripts you will notice I do a lot of
- internal safety checks. This is not a hacked out script; that was
- version 1.1, which has been buried by now somewhere on my archive disks.
- As a result, I hope to have taken care of a lot of the little quirks
- which may arise within such a system for you. If you do run across bugs
- though, please do email me, and I will do my best to correct them in a
- future version. Comments are also appreciated, and even if you have
- nothing really to say, let me know if you're using them, so I can at
- least get some idea of if whether or not I should keep working on
- release versions of this system, or whether it needs to be an internal
- project again due to lack of outside interest.
-
-
- VII. NOVELL RIGHTS REQUIREMENTS
-
- Here's a breakdown of what the rights requirements are for directories
- and files under Novell, while using the Virus Scanning Scripts. These
- are what your USER'S rights need to be in order to use the scripts:
-
-
- Scripts Directory: Should be in the global path, and should be
- readable and scannable (RF).
-
- The files VSCAN.BAT, VSCAN.BTM, and VSSHELP.DAT
- should be FLAG'ed as RoS (Read-only, Shareable).
-
- F-Prot Archive Directory: Need not be in the global path, and should be
- readable and scannable (RF).
-
- All files under this directory should be
- FLAG'ed as RoS (Read-only, Shareable)
-
- Report Directory: Need not be in the global path, and should be
- readable, writable, creatable, modifiable,
- and scannable (RWCMF).
-
- Files under this directory will be created as
- they are needed, so no FLAG changes are
- needed.
-
-
- VIII. LICENSE
-
- The author of this package grants full rights for you to do anything you
- wish to this package including modifications, as long as such
- modifications are not distributed without both direct permission from
- the author and documentation in effect to the changes made. If you wish,
- feel free to fold, bend, spindle, or mutilate this, but don't spread it
- as if it's the original package. I do ask that credit be given where it
- is due for my work (after all, this package is free).
-
- Use and installation is at your own risk, and the author, while
- providing this package in good faith, cannot and will not be held liable
- for damages or any resulting loss from use of this package.
-
- In order to be informed of both updates, as well as bug reports, I also
- request that you send email to me at mhazen@fcs.uga.edu, with a note to
- the efffect that you wish to be kept informed of updates. I HIGHLY
- RECOMMEND THAT YOU DO THIS... I may not post about smaller updates on
- the net.
-
- Updates will usually be posted to the moderated newsgroup comp.virus,
- when they become available.
-
-
- IX. AFTERNOTES
-
- This script series was originally specifically designed for our server,
- so you may find that there are features you'd like to have implemented.
- Please let me know if this is the case, but if you need it here and now,
- you have my full permission to edit them FOR YOUR OWN USE... and at your
- own risk... but please distribute only the original archive.
-
- One common problem is that networks with multiple drive mapping schemes
- (i.e. some users running LANtastic) may result in you having different
- default network drive letters in some cases. If this happens, as it once
- was occuring for our network here, try adding checks via something like
-
- IF EXIST <alternate drive letter>\LOGIN\LOGIN.EXE SET ARCDIR=<alt. path>
- IF EXIST <alternate drive letter>\LOGIN\LOGIN.EXE SET VSSDIR=<alt. path>
- IF EXIST <alternate drive letter>\LOGIN\LOGIN.EXE SET REPDIR=<alt. path>
-
- into the script right before the label :vercheck.
-
- Like I keep saying: if you do some tweaking, let me know what was done
- and why, so I may be able to fix it in a later version of the script. If
- there are problems beyond comprehension, let me know also. I can't of
- course verify this utility a thousand times over, but I am fairly
- certain it should work for almost anyone.
-
- Good luck, and good riddance to viruses!
-
- Mark Hazen
- Computer Services
- College of Family and Consumer Sciences
- The University of Georgia
-
- Internet Mail: mhazen@fcs.uga.edu
- Bitnet Mail: mhazen@uga
-
-